Recall that for maximum accuracy, the loop control variable should be an integer type. So the modified loop should look like this:
tenths = 0 ; while ( tenths <= limit*10 ) { double t = tenths/10.0 ; // be sure to include "point zero" distance = (G * t * t)/2 ; System.out.println( t + "\t" + distance ); tenths = tenths + 1 ; }
It is best to leave the formula as it was in the previous program,
and to handle the calculation
of t
from tenths
in an extra statement.
(Sometimes people try to skip the extra statement by modifying the formula,
but this saves little or no computer time, and costs possible confusion and error.)
Say that you want a program that writes out five rows of stars, such as the following:
******* ******* ******* ******* *******
This could be done with a while
loop that
iterates five times.
Each iteration could execute
System.out.println("*******")
.
Lines? 3 Stars per line? 13 ************* ************* *************
This is hard, since the user might ask for any number of
stars per line, and no single println
can do that.
Can a counting loop, such as we have been using, be used to count up to the number of lines that the user requested?